<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::NormalRefinement&lt; NormalT &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1_normal_refinement.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pri-types">Private 类型</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="classpcl_1_1_normal_refinement-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::NormalRefinement&lt; NormalT &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>Normal vector refinement class  
 <a href="classpcl_1_1_normal_refinement.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="normal__refinement_8h_source.html">normal_refinement.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::NormalRefinement&lt; NormalT &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1_normal_refinement.png" usemap="#pcl::NormalRefinement_3C_20NormalT_20_3E_map" alt=""/>
  <map id="pcl::NormalRefinement_3C_20NormalT_20_3E_map" name="pcl::NormalRefinement_3C_20NormalT_20_3E_map">
<area href="classpcl_1_1_filter.html" alt="pcl::Filter&lt; NormalT &gt;" shape="rect" coords="0,56,208,80"/>
<area href="classpcl_1_1_p_c_l_base.html" title="PCL base class. Implements methods that are used by most PCL algorithms." alt="pcl::PCLBase&lt; PointT &gt;" shape="rect" coords="0,0,208,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:af173d467d9dd002f54b063214ab0c3a7"><td class="memItemLeft" align="right" valign="top"><a id="af173d467d9dd002f54b063214ab0c3a7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#af173d467d9dd002f54b063214ab0c3a7">NormalRefinement</a> ()</td></tr>
<tr class="memdesc:af173d467d9dd002f54b063214ab0c3a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor, sets default convergence parameters <br /></td></tr>
<tr class="separator:af173d467d9dd002f54b063214ab0c3a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba4dd20feed866330bfda0299ffbf5ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#aba4dd20feed866330bfda0299ffbf5ba">NormalRefinement</a> (const std::vector&lt; std::vector&lt; int &gt; &gt; &amp;k_indices, const std::vector&lt; std::vector&lt; float &gt; &gt; &amp;k_sqr_distances)</td></tr>
<tr class="memdesc:aba4dd20feed866330bfda0299ffbf5ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for setting correspondences, sets default convergence parameters  <a href="classpcl_1_1_normal_refinement.html#aba4dd20feed866330bfda0299ffbf5ba">更多...</a><br /></td></tr>
<tr class="separator:aba4dd20feed866330bfda0299ffbf5ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad98c13b9b37f269c7c297c5abc67bcdb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#ad98c13b9b37f269c7c297c5abc67bcdb">setCorrespondences</a> (const std::vector&lt; std::vector&lt; int &gt; &gt; &amp;k_indices, const std::vector&lt; std::vector&lt; float &gt; &gt; &amp;k_sqr_distances)</td></tr>
<tr class="memdesc:ad98c13b9b37f269c7c297c5abc67bcdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set correspondences calculated from nearest neighbor search  <a href="classpcl_1_1_normal_refinement.html#ad98c13b9b37f269c7c297c5abc67bcdb">更多...</a><br /></td></tr>
<tr class="separator:ad98c13b9b37f269c7c297c5abc67bcdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae87cf1463b23d96ba02e486924c1739b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#ae87cf1463b23d96ba02e486924c1739b">getCorrespondences</a> (std::vector&lt; std::vector&lt; int &gt; &gt; &amp;k_indices, std::vector&lt; std::vector&lt; float &gt; &gt; &amp;k_sqr_distances)</td></tr>
<tr class="memdesc:ae87cf1463b23d96ba02e486924c1739b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get correspondences (copy)  <a href="classpcl_1_1_normal_refinement.html#ae87cf1463b23d96ba02e486924c1739b">更多...</a><br /></td></tr>
<tr class="separator:ae87cf1463b23d96ba02e486924c1739b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87753f68d1bac8b8a0aea6425e1e8fe8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#a87753f68d1bac8b8a0aea6425e1e8fe8">setMaxIterations</a> (unsigned int max_iterations)</td></tr>
<tr class="memdesc:a87753f68d1bac8b8a0aea6425e1e8fe8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set maximum iterations  <a href="classpcl_1_1_normal_refinement.html#a87753f68d1bac8b8a0aea6425e1e8fe8">更多...</a><br /></td></tr>
<tr class="separator:a87753f68d1bac8b8a0aea6425e1e8fe8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5938eccaed80043fb509a2fefcf7b377"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#a5938eccaed80043fb509a2fefcf7b377">getMaxIterations</a> ()</td></tr>
<tr class="memdesc:a5938eccaed80043fb509a2fefcf7b377"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get maximum iterations  <a href="classpcl_1_1_normal_refinement.html#a5938eccaed80043fb509a2fefcf7b377">更多...</a><br /></td></tr>
<tr class="separator:a5938eccaed80043fb509a2fefcf7b377"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a190ffabfe99242ad274a69cfb1435345"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#a190ffabfe99242ad274a69cfb1435345">setConvergenceThreshold</a> (float convergence_threshold)</td></tr>
<tr class="memdesc:a190ffabfe99242ad274a69cfb1435345"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set convergence threshold  <a href="classpcl_1_1_normal_refinement.html#a190ffabfe99242ad274a69cfb1435345">更多...</a><br /></td></tr>
<tr class="separator:a190ffabfe99242ad274a69cfb1435345"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f4b2672735f25963583bffc8da87cb0"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#a2f4b2672735f25963583bffc8da87cb0">getConvergenceThreshold</a> ()</td></tr>
<tr class="memdesc:a2f4b2672735f25963583bffc8da87cb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get convergence threshold  <a href="classpcl_1_1_normal_refinement.html#a2f4b2672735f25963583bffc8da87cb0">更多...</a><br /></td></tr>
<tr class="separator:a2f4b2672735f25963583bffc8da87cb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_filter"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_filter')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_filter.html">pcl::Filter&lt; NormalT &gt;</a></td></tr>
<tr class="memitem:af31e766a9092a766962f42005c1b84a4 inherit pub_methods_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_filter.html#af31e766a9092a766962f42005c1b84a4">Filter</a> (bool extract_removed_indices=false)</td></tr>
<tr class="memdesc:af31e766a9092a766962f42005c1b84a4 inherit pub_methods_classpcl_1_1_filter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor.  <a href="classpcl_1_1_filter.html#af31e766a9092a766962f42005c1b84a4">更多...</a><br /></td></tr>
<tr class="separator:af31e766a9092a766962f42005c1b84a4 inherit pub_methods_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11163e4d01519df900e6144f705f6980 inherit pub_methods_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top"><a id="a11163e4d01519df900e6144f705f6980"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_filter.html#a11163e4d01519df900e6144f705f6980">~Filter</a> ()</td></tr>
<tr class="memdesc:a11163e4d01519df900e6144f705f6980 inherit pub_methods_classpcl_1_1_filter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty destructor <br /></td></tr>
<tr class="separator:a11163e4d01519df900e6144f705f6980 inherit pub_methods_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae451ce8a0981e8589812d4f3b135a335 inherit pub_methods_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top"><a id="ae451ce8a0981e8589812d4f3b135a335"></a>
IndicesConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_filter.html#ae451ce8a0981e8589812d4f3b135a335">getRemovedIndices</a> ()</td></tr>
<tr class="memdesc:ae451ce8a0981e8589812d4f3b135a335 inherit pub_methods_classpcl_1_1_filter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the point indices being removed <br /></td></tr>
<tr class="separator:ae451ce8a0981e8589812d4f3b135a335 inherit pub_methods_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add67775d121c2dd536d3306ef447431e inherit pub_methods_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_filter.html#add67775d121c2dd536d3306ef447431e">getRemovedIndices</a> (<a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> &amp;pi)</td></tr>
<tr class="memdesc:add67775d121c2dd536d3306ef447431e inherit pub_methods_classpcl_1_1_filter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the point indices being removed  <a href="classpcl_1_1_filter.html#add67775d121c2dd536d3306ef447431e">更多...</a><br /></td></tr>
<tr class="separator:add67775d121c2dd536d3306ef447431e inherit pub_methods_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17115897ca28f6b12950d023958aa641 inherit pub_methods_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_filter.html#a17115897ca28f6b12950d023958aa641">filter</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &amp;output)</td></tr>
<tr class="memdesc:a17115897ca28f6b12950d023958aa641 inherit pub_methods_classpcl_1_1_filter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the filtering method and returns the filtered dataset in output.  <a href="classpcl_1_1_filter.html#a17115897ca28f6b12950d023958aa641">更多...</a><br /></td></tr>
<tr class="separator:a17115897ca28f6b12950d023958aa641 inherit pub_methods_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="af4fbc5eb005057f8a0fc6d60bde595df"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af4fbc5eb005057f8a0fc6d60bde595df">PCLBase</a> ()</td></tr>
<tr class="memdesc:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor. <br /></td></tr>
<tr class="separator:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a7a6dd7a91275d7737cf1b18005b47244"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a7a6dd7a91275d7737cf1b18005b47244">PCLBase</a> (const <a class="el" href="classpcl_1_1_p_c_l_base.html">PCLBase</a> &amp;base)</td></tr>
<tr class="memdesc:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ad5d6846e98e59c37dcc3dc9958d53966"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ad5d6846e98e59c37dcc3dc9958d53966">~PCLBase</a> ()</td></tr>
<tr class="memdesc:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">setInputCloud</a> (const PointCloudConstPtr &amp;cloud)</td></tr>
<tr class="memdesc:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the input dataset  <a href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">更多...</a><br /></td></tr>
<tr class="separator:a1952d7101f3942bac3b69ed55c1ca7ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a8cd745c4f7a792212f4fc3720b9d46ea"></a>
PointCloudConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a8cd745c4f7a792212f4fc3720b9d46ea">getInputCloud</a> () const</td></tr>
<tr class="memdesc:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the input point cloud dataset. <br /></td></tr>
<tr class="separator:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ab219359de6eb34c9d51e2e976dd1a0d1">setIndices</a> (const IndicesPtr &amp;indices)</td></tr>
<tr class="memdesc:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#ab219359de6eb34c9d51e2e976dd1a0d1">更多...</a><br /></td></tr>
<tr class="separator:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a436c68c74b31e4dd00000adfbb11ca7c">setIndices</a> (const IndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#a436c68c74b31e4dd00000adfbb11ca7c">更多...</a><br /></td></tr>
<tr class="separator:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af9cc90d8364ce968566f75800d3773ca">setIndices</a> (const PointIndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#af9cc90d8364ce968566f75800d3773ca">更多...</a><br /></td></tr>
<tr class="separator:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a930c7a6375fdf65ff8cfdb4eb4a6d996">setIndices</a> (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols)</td></tr>
<tr class="memdesc:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the indices for the points laying within an interest region of the point cloud.  <a href="classpcl_1_1_p_c_l_base.html#a930c7a6375fdf65ff8cfdb4eb4a6d996">更多...</a><br /></td></tr>
<tr class="separator:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a058753dd4de73d3d0062fe2e452fba3c"></a>
IndicesPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a058753dd4de73d3d0062fe2e452fba3c">getIndices</a> ()</td></tr>
<tr class="memdesc:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="acae187b37230758959572ceb1e6e2045"></a>
IndicesConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acae187b37230758959572ceb1e6e2045">getIndices</a> () const</td></tr>
<tr class="memdesc:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">operator[]</a> (size_t pos) const</td></tr>
<tr class="memdesc:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> operator[] to shorten code  <a href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">更多...</a><br /></td></tr>
<tr class="separator:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:a2fc672c7b1249ab686e5947c35d85389"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#a2fc672c7b1249ab686e5947c35d85389">applyFilter</a> (<a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &amp;output)</td></tr>
<tr class="memdesc:a2fc672c7b1249ab686e5947c35d85389"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classpcl_1_1_filter.html" title="Filter represents the base filter class. All filters must inherit from this interface.">Filter</a> a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a>.  <a href="classpcl_1_1_normal_refinement.html#a2fc672c7b1249ab686e5947c35d85389">更多...</a><br /></td></tr>
<tr class="separator:a2fc672c7b1249ab686e5947c35d85389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classpcl_1_1_filter"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classpcl_1_1_filter')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="classpcl_1_1_filter.html">pcl::Filter&lt; NormalT &gt;</a></td></tr>
<tr class="memitem:a71040236d2c11da75b715d6d6bf5ba9d inherit pro_methods_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top"><a id="a71040236d2c11da75b715d6d6bf5ba9d"></a>
const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_filter.html#a71040236d2c11da75b715d6d6bf5ba9d">getClassName</a> () const</td></tr>
<tr class="memdesc:a71040236d2c11da75b715d6d6bf5ba9d inherit pro_methods_classpcl_1_1_filter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a string representation of the name of this class. <br /></td></tr>
<tr class="separator:a71040236d2c11da75b715d6d6bf5ba9d inherit pro_methods_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">initCompute</a> ()</td></tr>
<tr class="memdesc:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called before starting the actual computation.  <a href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">更多...</a><br /></td></tr>
<tr class="separator:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="afc426c4eebb94b7734d4fa556bff1420"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#afc426c4eebb94b7734d4fa556bff1420">deinitCompute</a> ()</td></tr>
<tr class="memdesc:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called after finishing the actual computation. <br /></td></tr>
<tr class="separator:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
Private 类型</h2></td></tr>
<tr class="memitem:a3f1ba1fb91c82aa59d0afb9fe8efa53e"><td class="memItemLeft" align="right" valign="top"><a id="a3f1ba1fb91c82aa59d0afb9fe8efa53e"></a>
typedef <a class="el" href="classpcl_1_1_filter.html">Filter</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt;::<a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a>&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:a3f1ba1fb91c82aa59d0afb9fe8efa53e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2edc1fa5651d8870602498687e94d6e9"><td class="memItemLeft" align="right" valign="top"><a id="a2edc1fa5651d8870602498687e94d6e9"></a>
typedef PointCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudPtr</b></td></tr>
<tr class="separator:a2edc1fa5651d8870602498687e94d6e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a863d06c86f1f74f36da679f6e173cc8a"><td class="memItemLeft" align="right" valign="top"><a id="a863d06c86f1f74f36da679f6e173cc8a"></a>
typedef PointCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:a863d06c86f1f74f36da679f6e173cc8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:a2e54d625b5731c5c98ede6bd796ba67f"><td class="memItemLeft" align="right" valign="top"><a id="a2e54d625b5731c5c98ede6bd796ba67f"></a>
std::vector&lt; std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#a2e54d625b5731c5c98ede6bd796ba67f">k_indices_</a></td></tr>
<tr class="memdesc:a2e54d625b5731c5c98ede6bd796ba67f"><td class="mdescLeft">&#160;</td><td class="mdescRight">indices of neighboring points <br /></td></tr>
<tr class="separator:a2e54d625b5731c5c98ede6bd796ba67f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af21df7cdd94a8cc28b4a5ef986af42b8"><td class="memItemLeft" align="right" valign="top"><a id="af21df7cdd94a8cc28b4a5ef986af42b8"></a>
std::vector&lt; std::vector&lt; float &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#af21df7cdd94a8cc28b4a5ef986af42b8">k_sqr_distances_</a></td></tr>
<tr class="memdesc:af21df7cdd94a8cc28b4a5ef986af42b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">squared distances to the neighboring points <br /></td></tr>
<tr class="separator:af21df7cdd94a8cc28b4a5ef986af42b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08901fccd9852de8a16d48db110174bf"><td class="memItemLeft" align="right" valign="top"><a id="a08901fccd9852de8a16d48db110174bf"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#a08901fccd9852de8a16d48db110174bf">max_iterations_</a></td></tr>
<tr class="memdesc:a08901fccd9852de8a16d48db110174bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum allowable iterations over the whole point cloud for refinement <br /></td></tr>
<tr class="separator:a08901fccd9852de8a16d48db110174bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5446470db7e5631464bce6aa5b97282d"><td class="memItemLeft" align="right" valign="top"><a id="a5446470db7e5631464bce6aa5b97282d"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_normal_refinement.html#a5446470db7e5631464bce6aa5b97282d">convergence_threshold_</a></td></tr>
<tr class="memdesc:a5446470db7e5631464bce6aa5b97282d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convergence threshold in the interval [0,1] on the mean of 1 - dot products between previous iteration and the current <br /></td></tr>
<tr class="separator:a5446470db7e5631464bce6aa5b97282d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pub_types_classpcl_1_1_filter"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1_filter')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1_filter.html">pcl::Filter&lt; NormalT &gt;</a></td></tr>
<tr class="memitem:a719a1ef5a8fc3b7f4a651a8bae51571b inherit pub_types_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top"><a id="a719a1ef5a8fc3b7f4a651a8bae51571b"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1_filter.html">Filter</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a719a1ef5a8fc3b7f4a651a8bae51571b inherit pub_types_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01b992cf70e997979d7f653226a60ddd inherit pub_types_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top"><a id="a01b992cf70e997979d7f653226a60ddd"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_filter.html">Filter</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a01b992cf70e997979d7f653226a60ddd inherit pub_types_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f1d68bbc5f1f6b852b48b95e4673cfb inherit pub_types_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top"><a id="a4f1d68bbc5f1f6b852b48b95e4673cfb"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:a4f1d68bbc5f1f6b852b48b95e4673cfb inherit pub_types_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a335eb506b145ec1a09acc945b775246d inherit pub_types_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top"><a id="a335eb506b145ec1a09acc945b775246d"></a>
typedef PointCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudPtr</b></td></tr>
<tr class="separator:a335eb506b145ec1a09acc945b775246d inherit pub_types_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5796101c9166820fac3a5ca961bde255 inherit pub_types_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top"><a id="a5796101c9166820fac3a5ca961bde255"></a>
typedef PointCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:a5796101c9166820fac3a5ca961bde255 inherit pub_types_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae2f6f6863a73337858b7a7a054eaae4f"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ab84dd662cda89edb882fe5307b2136ea"></a>
typedef PointCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudPtr</b></td></tr>
<tr class="separator:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ac8326513fad0680b6993e2f1a79a6af4"></a>
typedef PointCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae51eae0c7b3e0b7178f4894dff90660a"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesPtr</b></td></tr>
<tr class="separator:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a51771056fb4ab8c448a11157acbe2ee0"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> const  &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesConstPtr</b></td></tr>
<tr class="separator:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1_filter"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1_filter')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1_filter.html">pcl::Filter&lt; NormalT &gt;</a></td></tr>
<tr class="memitem:ae83ccb695ed263cfc64c224210a31936 inherit pro_attribs_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top"><a id="ae83ccb695ed263cfc64c224210a31936"></a>
IndicesPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_filter.html#ae83ccb695ed263cfc64c224210a31936">removed_indices_</a></td></tr>
<tr class="memdesc:ae83ccb695ed263cfc64c224210a31936 inherit pro_attribs_classpcl_1_1_filter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indices of the points that are removed <br /></td></tr>
<tr class="separator:ae83ccb695ed263cfc64c224210a31936 inherit pro_attribs_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad700c7ab56dc82ad8811b87e9f793751 inherit pro_attribs_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top"><a id="ad700c7ab56dc82ad8811b87e9f793751"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_filter.html#ad700c7ab56dc82ad8811b87e9f793751">filter_name_</a></td></tr>
<tr class="memdesc:ad700c7ab56dc82ad8811b87e9f793751 inherit pro_attribs_classpcl_1_1_filter"><td class="mdescLeft">&#160;</td><td class="mdescRight">The filter name. <br /></td></tr>
<tr class="separator:ad700c7ab56dc82ad8811b87e9f793751 inherit pro_attribs_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b899631add791703f5d615f085bede inherit pro_attribs_classpcl_1_1_filter"><td class="memItemLeft" align="right" valign="top"><a id="a77b899631add791703f5d615f085bede"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_filter.html#a77b899631add791703f5d615f085bede">extract_removed_indices_</a></td></tr>
<tr class="memdesc:a77b899631add791703f5d615f085bede inherit pro_attribs_classpcl_1_1_filter"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true if we want to return the indices of the removed points. <br /></td></tr>
<tr class="separator:a77b899631add791703f5d615f085bede inherit pro_attribs_classpcl_1_1_filter"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointT &gt;</a></td></tr>
<tr class="memitem:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a09c70d8e06e3fb4f07903fe6f8d67869"></a>
PointCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a></td></tr>
<tr class="memdesc:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">The input point cloud dataset. <br /></td></tr>
<tr class="separator:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="aaee847c8a517ebf365bad2cb182a6626"></a>
IndicesPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a></td></tr>
<tr class="memdesc:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the vector of point indices to use. <br /></td></tr>
<tr class="separator:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ada1eadb824d34ca9206a86343d9760bb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ada1eadb824d34ca9206a86343d9760bb">use_indices_</a></td></tr>
<tr class="memdesc:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true if point indices are used. <br /></td></tr>
<tr class="separator:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="adadb0299f144528020ed558af6879662"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#adadb0299f144528020ed558af6879662">fake_indices_</a></td></tr>
<tr class="memdesc:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">If no set of indices are given, we construct a set of fake indices that mimic the input <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a>. <br /></td></tr>
<tr class="separator:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename NormalT&gt;<br />
class pcl::NormalRefinement&lt; NormalT &gt;</h3>

<p>Normal vector refinement class </p>
<p>This class refines a set of already estimated normals by iteratively updating each normal to the (weighted) mean of all normals in its neighborhood. The intention is that you reuse the same point correspondences as used when estimating the original normals in order to avoid repeating a nearest neighbor search.</p>
<dl class="section note"><dt>注解</dt><dd>This class avoids points for which a NaN is encountered in the neighborhood. In the special case where a point has only NaNs in its neighborhood, the resultant refined normal will be set to zero, i.e. this class only produces finite normals.</dd></dl>
<p>Usage example:</p>
<div class="fragment"><div class="line"><span class="comment">// Input point cloud</span></div>
<div class="line"><a class="code" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt;PointT&gt;</a> cloud;</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Fill cloud...</span></div>
<div class="line"> </div>
<div class="line"><span class="comment">// Estimated and refined normals</span></div>
<div class="line"><a class="code" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt;NormalT&gt;</a> normals;</div>
<div class="line"><a class="code" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt;NormalT&gt;</a> normals_refined;</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Search parameters</span></div>
<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> k = 5;</div>
<div class="line">std::vector&lt;std::vector&lt;int&gt; &gt; k_indices;</div>
<div class="line">std::vector&lt;std::vector&lt;float&gt; &gt; k_sqr_distances;</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Run search</span></div>
<div class="line"><a class="code" href="classpcl_1_1search_1_1_kd_tree.html">pcl::search::KdTree&lt;pcl::PointXYZRGB&gt;</a> search;</div>
<div class="line">search.<a class="code" href="classpcl_1_1search_1_1_kd_tree.html#a457ebf1fc8f25e3b45d0bf9d55880f6f">setInputCloud</a> (cloud.<a class="code" href="classpcl_1_1_point_cloud.html#afebbbb9c522a94cf245dd3968b50ed5e">makeShared</a> ());</div>
<div class="line">search.<a class="code" href="classpcl_1_1search_1_1_kd_tree.html#a6be8fe286786c3b1aeda7d5369f9cb3e">nearestKSearch</a> (cloud, std::vector&lt;int&gt; (), k, k_indices, k_sqr_distances);</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Use search results for normal estimation</span></div>
<div class="line"><a class="code" href="classpcl_1_1_normal_estimation.html">pcl::NormalEstimation&lt;PointT, NormalT&gt;</a> ne;</div>
<div class="line"><span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; cloud.size (); ++i)</div>
<div class="line">{</div>
<div class="line">  <a class="code" href="structpcl_1_1_normal.html">NormalT</a> normal;</div>
<div class="line">  ne.<a class="code" href="classpcl_1_1_normal_estimation.html#abd83b3241b46704f1ffc424dee2aa031">computePointNormal</a> (cloud, k_indices[i]</div>
<div class="line">                         normal.normal_x, normal.normal_y, normal.normal_z, normal.curvature);</div>
<div class="line">  pcl::flipNormalTowardsViewpoint (cloud[i], cloud.<a class="code" href="classpcl_1_1_point_cloud.html#aad7c2cd4b0d1c7f0fbc096276b5e2230">sensor_origin_</a>[0], cloud.<a class="code" href="classpcl_1_1_point_cloud.html#aad7c2cd4b0d1c7f0fbc096276b5e2230">sensor_origin_</a>[1], cloud.<a class="code" href="classpcl_1_1_point_cloud.html#aad7c2cd4b0d1c7f0fbc096276b5e2230">sensor_origin_</a>[2],</div>
<div class="line">                                   normal.normal_x, normal.normal_y, normal.normal_z);</div>
<div class="line">  normals.<a class="code" href="classpcl_1_1_point_cloud.html#a0b4d7abee110e47d90635eb042488bb4">push_back</a> (normal);</div>
<div class="line">}</div>
<div class="line"> </div>
<div class="line"><span class="comment">// Run refinement using search results</span></div>
<div class="line"><a class="code" href="classpcl_1_1_normal_refinement.html">pcl::NormalRefinement&lt;NormalT&gt;</a> nr (k_indices, k_sqr_distances);</div>
<div class="line">nr.setInputCloud (normals.<a class="code" href="classpcl_1_1_point_cloud.html#afebbbb9c522a94cf245dd3968b50ed5e">makeShared</a> ());</div>
<div class="line">nr.filter (normals_refined);</div>
<div class="ttc" id="aclasspcl_1_1_normal_estimation_html"><div class="ttname"><a href="classpcl_1_1_normal_estimation.html">pcl::NormalEstimation</a></div><div class="ttdoc">NormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point....</div><div class="ttdef"><b>Definition:</b> normal_3d.h:200</div></div>
<div class="ttc" id="aclasspcl_1_1_normal_estimation_html_abd83b3241b46704f1ffc424dee2aa031"><div class="ttname"><a href="classpcl_1_1_normal_estimation.html#abd83b3241b46704f1ffc424dee2aa031">pcl::NormalEstimation::computePointNormal</a></div><div class="ttdeci">bool computePointNormal(const pcl::PointCloud&lt; PointInT &gt; &amp;cloud, const std::vector&lt; int &gt; &amp;indices, Eigen::Vector4f &amp;plane_parameters, float &amp;curvature)</div><div class="ttdoc">Compute the Least-Squares plane fit for a given set of points, using their indices,...</div><div class="ttdef"><b>Definition:</b> normal_3d.h:242</div></div>
<div class="ttc" id="aclasspcl_1_1_normal_refinement_html"><div class="ttname"><a href="classpcl_1_1_normal_refinement.html">pcl::NormalRefinement</a></div><div class="ttdoc">Normal vector refinement class</div><div class="ttdef"><b>Definition:</b> normal_refinement.h:189</div></div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html"><div class="ttname"><a href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a></div><div class="ttdoc">PointCloud represents the base class in PCL for storing collections of 3D points.</div><div class="ttdef"><b>Definition:</b> point_cloud.h:173</div></div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html_a0b4d7abee110e47d90635eb042488bb4"><div class="ttname"><a href="classpcl_1_1_point_cloud.html#a0b4d7abee110e47d90635eb042488bb4">pcl::PointCloud::push_back</a></div><div class="ttdeci">void push_back(const PointT &amp;pt)</div><div class="ttdoc">Insert a new point in the cloud, at the end of the container.</div><div class="ttdef"><b>Definition:</b> point_cloud.h:480</div></div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html_aad7c2cd4b0d1c7f0fbc096276b5e2230"><div class="ttname"><a href="classpcl_1_1_point_cloud.html#aad7c2cd4b0d1c7f0fbc096276b5e2230">pcl::PointCloud::sensor_origin_</a></div><div class="ttdeci">Eigen::Vector4f sensor_origin_</div><div class="ttdoc">Sensor acquisition pose (origin/translation).</div><div class="ttdef"><b>Definition:</b> point_cloud.h:421</div></div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html_afebbbb9c522a94cf245dd3968b50ed5e"><div class="ttname"><a href="classpcl_1_1_point_cloud.html#afebbbb9c522a94cf245dd3968b50ed5e">pcl::PointCloud::makeShared</a></div><div class="ttdeci">Ptr makeShared() const</div><div class="ttdoc">Copy the cloud to the heap and return a smart pointer Note that deep copy is performed,...</div><div class="ttdef"><b>Definition:</b> point_cloud.h:588</div></div>
<div class="ttc" id="aclasspcl_1_1search_1_1_kd_tree_html"><div class="ttname"><a href="classpcl_1_1search_1_1_kd_tree.html">pcl::search::KdTree</a></div><div class="ttdoc">search::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...</div><div class="ttdef"><b>Definition:</b> kdtree.h:63</div></div>
<div class="ttc" id="aclasspcl_1_1search_1_1_kd_tree_html_a457ebf1fc8f25e3b45d0bf9d55880f6f"><div class="ttname"><a href="classpcl_1_1search_1_1_kd_tree.html#a457ebf1fc8f25e3b45d0bf9d55880f6f">pcl::search::KdTree::setInputCloud</a></div><div class="ttdeci">void setInputCloud(const PointCloudConstPtr &amp;cloud, const IndicesConstPtr &amp;indices=IndicesConstPtr())</div><div class="ttdoc">Provide a pointer to the input dataset.</div><div class="ttdef"><b>Definition:</b> kdtree.hpp:77</div></div>
<div class="ttc" id="aclasspcl_1_1search_1_1_kd_tree_html_a6be8fe286786c3b1aeda7d5369f9cb3e"><div class="ttname"><a href="classpcl_1_1search_1_1_kd_tree.html#a6be8fe286786c3b1aeda7d5369f9cb3e">pcl::search::KdTree::nearestKSearch</a></div><div class="ttdeci">int nearestKSearch(const PointT &amp;point, int k, std::vector&lt; int &gt; &amp;k_indices, std::vector&lt; float &gt; &amp;k_sqr_distances) const</div><div class="ttdoc">Search for the k-nearest neighbors for the given query point.</div><div class="ttdef"><b>Definition:</b> kdtree.hpp:88</div></div>
<div class="ttc" id="astructpcl_1_1_normal_html"><div class="ttname"><a href="structpcl_1_1_normal.html">pcl::Normal</a></div><div class="ttdoc">A point structure representing normal coordinates and the surface curvature estimate....</div><div class="ttdef"><b>Definition:</b> point_types.hpp:779</div></div>
</div><!-- fragment --><dl class="section author"><dt>作者</dt><dd>Anders Glent Buch </dd></dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="aba4dd20feed866330bfda0299ffbf5ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba4dd20feed866330bfda0299ffbf5ba">&#9670;&nbsp;</a></span>NormalRefinement()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NormalT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_normal_refinement.html">pcl::NormalRefinement</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt;::<a class="el" href="classpcl_1_1_normal_refinement.html">NormalRefinement</a> </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; std::vector&lt; int &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>k_indices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; std::vector&lt; float &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>k_sqr_distances</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor for setting correspondences, sets default convergence parameters </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">k_indices</td><td>indices of neighboring points </td></tr>
    <tr><td class="paramname">k_sqr_distances</td><td>squared distances to the neighboring points </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                                                                                                                            :</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        <a class="code" href="classpcl_1_1_filter.html#af31e766a9092a766962f42005c1b84a4">Filter&lt;NormalT&gt;::Filter</a> ()</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;      {</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        <a class="code" href="classpcl_1_1_filter.html#ad700c7ab56dc82ad8811b87e9f793751">filter_name_</a> = <span class="stringliteral">&quot;NormalRefinement&quot;</span>;</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        <a class="code" href="classpcl_1_1_normal_refinement.html#ad98c13b9b37f269c7c297c5abc67bcdb">setCorrespondences</a> (k_indices, k_sqr_distances);</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        <a class="code" href="classpcl_1_1_normal_refinement.html#a87753f68d1bac8b8a0aea6425e1e8fe8">setMaxIterations</a> (15);</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;        <a class="code" href="classpcl_1_1_normal_refinement.html#a190ffabfe99242ad274a69cfb1435345">setConvergenceThreshold</a> (0.00001f);</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;      }</div>
<div class="ttc" id="aclasspcl_1_1_filter_html_ad700c7ab56dc82ad8811b87e9f793751"><div class="ttname"><a href="classpcl_1_1_filter.html#ad700c7ab56dc82ad8811b87e9f793751">pcl::Filter&lt; NormalT &gt;::filter_name_</a></div><div class="ttdeci">std::string filter_name_</div><div class="ttdoc">The filter name.</div><div class="ttdef"><b>Definition:</b> filter.h:166</div></div>
<div class="ttc" id="aclasspcl_1_1_filter_html_af31e766a9092a766962f42005c1b84a4"><div class="ttname"><a href="classpcl_1_1_filter.html#af31e766a9092a766962f42005c1b84a4">pcl::Filter::Filter</a></div><div class="ttdeci">Filter(bool extract_removed_indices=false)</div><div class="ttdoc">Empty constructor.</div><div class="ttdef"><b>Definition:</b> filter.h:102</div></div>
<div class="ttc" id="aclasspcl_1_1_normal_refinement_html_a190ffabfe99242ad274a69cfb1435345"><div class="ttname"><a href="classpcl_1_1_normal_refinement.html#a190ffabfe99242ad274a69cfb1435345">pcl::NormalRefinement::setConvergenceThreshold</a></div><div class="ttdeci">void setConvergenceThreshold(float convergence_threshold)</div><div class="ttdoc">Set convergence threshold</div><div class="ttdef"><b>Definition:</b> normal_refinement.h:266</div></div>
<div class="ttc" id="aclasspcl_1_1_normal_refinement_html_a87753f68d1bac8b8a0aea6425e1e8fe8"><div class="ttname"><a href="classpcl_1_1_normal_refinement.html#a87753f68d1bac8b8a0aea6425e1e8fe8">pcl::NormalRefinement::setMaxIterations</a></div><div class="ttdeci">void setMaxIterations(unsigned int max_iterations)</div><div class="ttdoc">Set maximum iterations</div><div class="ttdef"><b>Definition:</b> normal_refinement.h:248</div></div>
<div class="ttc" id="aclasspcl_1_1_normal_refinement_html_ad98c13b9b37f269c7c297c5abc67bcdb"><div class="ttname"><a href="classpcl_1_1_normal_refinement.html#ad98c13b9b37f269c7c297c5abc67bcdb">pcl::NormalRefinement::setCorrespondences</a></div><div class="ttdeci">void setCorrespondences(const std::vector&lt; std::vector&lt; int &gt; &gt; &amp;k_indices, const std::vector&lt; std::vector&lt; float &gt; &gt; &amp;k_sqr_distances)</div><div class="ttdoc">Set correspondences calculated from nearest neighbor search</div><div class="ttdef"><b>Definition:</b> normal_refinement.h:227</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a2fc672c7b1249ab686e5947c35d85389"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fc672c7b1249ab686e5947c35d85389">&#9670;&nbsp;</a></span>applyFilter()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NormalT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_normal_refinement.html">pcl::NormalRefinement</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt;::applyFilter </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &amp;&#160;</td>
          <td class="paramname"><em>output</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p><a class="el" href="classpcl_1_1_filter.html" title="Filter represents the base filter class. All filters must inherit from this interface.">Filter</a> a Point <a class="el" href="class_cloud.html" title="A wrapper which allows to use any implementation of cloud provided by a third-party library.">Cloud</a>. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">output</td><td>the resultant point cloud message </td></tr>
  </table>
  </dd>
</dl>

<p>实现了 <a class="el" href="classpcl_1_1_filter.html#a1f703f36f50546e950f03af2453da623">pcl::Filter&lt; NormalT &gt;</a>.</p>
<div class="fragment"><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;{</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;  <span class="comment">// Check input</span></div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;empty ())</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;  {</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[pcl::%s::applyFilter] No source was input!\n&quot;</span>,</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;               <a class="code" href="classpcl_1_1_filter.html#a71040236d2c11da75b715d6d6bf5ba9d">getClassName</a> ().c_str ());</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;  }</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;  </div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;  <span class="comment">// Copy to output</span></div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;  output = *<a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>;</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;  </div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;  <span class="comment">// Check that correspondences are non-empty</span></div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_normal_refinement.html#a2e54d625b5731c5c98ede6bd796ba67f">k_indices_</a>.empty () || <a class="code" href="classpcl_1_1_normal_refinement.html#af21df7cdd94a8cc28b4a5ef986af42b8">k_sqr_distances_</a>.empty ())</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  {</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[pcl::%s::applyFilter] No point correspondences given! Returning original input.\n&quot;</span>,</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;               <a class="code" href="classpcl_1_1_filter.html#a71040236d2c11da75b715d6d6bf5ba9d">getClassName</a> ().c_str ());</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  }</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  <span class="comment">// Check that correspondences are OK</span></div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;  <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size = <a class="code" href="classpcl_1_1_normal_refinement.html#a2e54d625b5731c5c98ede6bd796ba67f">k_indices_</a>.size ();</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_normal_refinement.html#af21df7cdd94a8cc28b4a5ef986af42b8">k_sqr_distances_</a>.size () != size || <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;size () != size)</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  {</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[pcl::%s::applyFilter] Inconsistency between size of correspondence indices/distances or input! Returning original input.\n&quot;</span>,</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;               <a class="code" href="classpcl_1_1_filter.html#a71040236d2c11da75b715d6d6bf5ba9d">getClassName</a> ().c_str ());</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;  }</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  </div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;  <span class="comment">// Run refinement while monitoring convergence</span></div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; <a class="code" href="classpcl_1_1_normal_refinement.html#a08901fccd9852de8a16d48db110174bf">max_iterations_</a>; ++i)</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;  {</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="comment">// Output of the current iteration</span></div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <a class="code" href="classpcl_1_1_point_cloud.html">PointCloud</a> tmp = output;</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    </div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="comment">// Mean change in direction, measured by dot products</span></div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordtype">float</span> ddot = 0.0f;</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    </div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="comment">// Loop over all points in current output and write refined normal to tmp</span></div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordtype">int</span> num_valids = 0;</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; size; ++j)</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    {</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;      <span class="comment">// Point to write to</span></div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;      <a class="code" href="structpcl_1_1_normal.html">NormalT</a>&amp; tmpj = tmp[j];</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;      </div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;      <span class="comment">// Refine</span></div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;      <span class="keywordflow">if</span> (refineNormal (output, j, <a class="code" href="classpcl_1_1_normal_refinement.html#a2e54d625b5731c5c98ede6bd796ba67f">k_indices_</a>[j], <a class="code" href="classpcl_1_1_normal_refinement.html#af21df7cdd94a8cc28b4a5ef986af42b8">k_sqr_distances_</a>[j], tmpj))</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;      {</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="comment">// Accumulate using similarity in direction between previous iteration and current</span></div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <span class="keyword">const</span> <a class="code" href="structpcl_1_1_normal.html">NormalT</a>&amp; outputj = output[j];</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        ddot += tmpj.normal_x * outputj.normal_x + tmpj.normal_y * outputj.normal_y + tmpj.normal_z * outputj.normal_z;</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        ++num_valids;</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;      }</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    }</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    </div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="comment">// Take mean of similarities</span></div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    ddot /= <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (num_valids);</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    </div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="comment">// Negate to since we want an error measure to approach zero</span></div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    ddot = 1.0f - ddot;</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    </div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="comment">// Update output</span></div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    output = tmp;</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    </div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="comment">// Break if converged</span></div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordflow">if</span> (ddot &lt; <a class="code" href="classpcl_1_1_normal_refinement.html#a5446470db7e5631464bce6aa5b97282d">convergence_threshold_</a>)</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    {</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;      PCL_DEBUG(<span class="stringliteral">&quot;[pcl::%s::applyFilter] Converged after %i iterations with mean error of %f.\n&quot;</span>,</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                <a class="code" href="classpcl_1_1_filter.html#a71040236d2c11da75b715d6d6bf5ba9d">getClassName</a> ().c_str (), i+1, ddot);</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;      <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    }</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  }</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_filter_html_a71040236d2c11da75b715d6d6bf5ba9d"><div class="ttname"><a href="classpcl_1_1_filter.html#a71040236d2c11da75b715d6d6bf5ba9d">pcl::Filter&lt; NormalT &gt;::getClassName</a></div><div class="ttdeci">const std::string &amp; getClassName() const</div><div class="ttdoc">Get a string representation of the name of this class.</div><div class="ttdef"><b>Definition:</b> filter.h:182</div></div>
<div class="ttc" id="aclasspcl_1_1_normal_refinement_html_a08901fccd9852de8a16d48db110174bf"><div class="ttname"><a href="classpcl_1_1_normal_refinement.html#a08901fccd9852de8a16d48db110174bf">pcl::NormalRefinement::max_iterations_</a></div><div class="ttdeci">unsigned int max_iterations_</div><div class="ttdoc">Maximum allowable iterations over the whole point cloud for refinement</div><div class="ttdef"><b>Definition:</b> normal_refinement.h:295</div></div>
<div class="ttc" id="aclasspcl_1_1_normal_refinement_html_a2e54d625b5731c5c98ede6bd796ba67f"><div class="ttname"><a href="classpcl_1_1_normal_refinement.html#a2e54d625b5731c5c98ede6bd796ba67f">pcl::NormalRefinement::k_indices_</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; int &gt; &gt; k_indices_</div><div class="ttdoc">indices of neighboring points</div><div class="ttdef"><b>Definition:</b> normal_refinement.h:289</div></div>
<div class="ttc" id="aclasspcl_1_1_normal_refinement_html_a5446470db7e5631464bce6aa5b97282d"><div class="ttname"><a href="classpcl_1_1_normal_refinement.html#a5446470db7e5631464bce6aa5b97282d">pcl::NormalRefinement::convergence_threshold_</a></div><div class="ttdeci">float convergence_threshold_</div><div class="ttdoc">Convergence threshold in the interval [0,1] on the mean of 1 - dot products between previous iteratio...</div><div class="ttdef"><b>Definition:</b> normal_refinement.h:298</div></div>
<div class="ttc" id="aclasspcl_1_1_normal_refinement_html_af21df7cdd94a8cc28b4a5ef986af42b8"><div class="ttname"><a href="classpcl_1_1_normal_refinement.html#af21df7cdd94a8cc28b4a5ef986af42b8">pcl::NormalRefinement::k_sqr_distances_</a></div><div class="ttdeci">std::vector&lt; std::vector&lt; float &gt; &gt; k_sqr_distances_</div><div class="ttdoc">squared distances to the neighboring points</div><div class="ttdef"><b>Definition:</b> normal_refinement.h:292</div></div>
<div class="ttc" id="aclasspcl_1_1_p_c_l_base_html_a09c70d8e06e3fb4f07903fe6f8d67869"><div class="ttname"><a href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">pcl::PCLBase::input_</a></div><div class="ttdeci">PointCloudConstPtr input_</div><div class="ttdoc">The input point cloud dataset.</div><div class="ttdef"><b>Definition:</b> pcl_base.h:150</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a2f4b2672735f25963583bffc8da87cb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f4b2672735f25963583bffc8da87cb0">&#9670;&nbsp;</a></span>getConvergenceThreshold()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NormalT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classpcl_1_1_normal_refinement.html">pcl::NormalRefinement</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt;::getConvergenceThreshold </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get convergence threshold </p>
<dl class="section return"><dt>返回</dt><dd>convergence threshold </dd></dl>
<div class="fragment"><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;      {</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_normal_refinement.html#a5446470db7e5631464bce6aa5b97282d">convergence_threshold_</a>;</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ae87cf1463b23d96ba02e486924c1739b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae87cf1463b23d96ba02e486924c1739b">&#9670;&nbsp;</a></span>getCorrespondences()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NormalT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_normal_refinement.html">pcl::NormalRefinement</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt;::getCorrespondences </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; std::vector&lt; int &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>k_indices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; std::vector&lt; float &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>k_sqr_distances</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get correspondences (copy) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">k_indices</td><td>indices of neighboring points </td></tr>
    <tr><td class="paramname">k_sqr_distances</td><td>squared distances to the neighboring points </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;      {</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        k_indices.assign (<a class="code" href="classpcl_1_1_normal_refinement.html#a2e54d625b5731c5c98ede6bd796ba67f">k_indices_</a>.begin (), <a class="code" href="classpcl_1_1_normal_refinement.html#a2e54d625b5731c5c98ede6bd796ba67f">k_indices_</a>.end ());</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        k_sqr_distances.assign (<a class="code" href="classpcl_1_1_normal_refinement.html#af21df7cdd94a8cc28b4a5ef986af42b8">k_sqr_distances_</a>.begin (), <a class="code" href="classpcl_1_1_normal_refinement.html#af21df7cdd94a8cc28b4a5ef986af42b8">k_sqr_distances_</a>.end ());</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5938eccaed80043fb509a2fefcf7b377"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5938eccaed80043fb509a2fefcf7b377">&#9670;&nbsp;</a></span>getMaxIterations()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NormalT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="classpcl_1_1_normal_refinement.html">pcl::NormalRefinement</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt;::getMaxIterations </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get maximum iterations </p>
<dl class="section return"><dt>返回</dt><dd>maximum iterations </dd></dl>
<div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;      {</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classpcl_1_1_normal_refinement.html#a08901fccd9852de8a16d48db110174bf">max_iterations_</a>;</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a190ffabfe99242ad274a69cfb1435345"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a190ffabfe99242ad274a69cfb1435345">&#9670;&nbsp;</a></span>setConvergenceThreshold()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NormalT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_normal_refinement.html">pcl::NormalRefinement</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt;::setConvergenceThreshold </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>convergence_threshold</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set convergence threshold </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">convergence_threshold</td><td>convergence threshold </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;      {</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <a class="code" href="classpcl_1_1_normal_refinement.html#a5446470db7e5631464bce6aa5b97282d">convergence_threshold_</a> = convergence_threshold;</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad98c13b9b37f269c7c297c5abc67bcdb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad98c13b9b37f269c7c297c5abc67bcdb">&#9670;&nbsp;</a></span>setCorrespondences()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NormalT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_normal_refinement.html">pcl::NormalRefinement</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt;::setCorrespondences </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; std::vector&lt; int &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>k_indices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; std::vector&lt; float &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>k_sqr_distances</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set correspondences calculated from nearest neighbor search </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">k_indices</td><td>indices of neighboring points </td></tr>
    <tr><td class="paramname">k_sqr_distances</td><td>squared distances to the neighboring points </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;      {</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        <a class="code" href="classpcl_1_1_normal_refinement.html#a2e54d625b5731c5c98ede6bd796ba67f">k_indices_</a> = k_indices;</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        <a class="code" href="classpcl_1_1_normal_refinement.html#af21df7cdd94a8cc28b4a5ef986af42b8">k_sqr_distances_</a> = k_sqr_distances;</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a87753f68d1bac8b8a0aea6425e1e8fe8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87753f68d1bac8b8a0aea6425e1e8fe8">&#9670;&nbsp;</a></span>setMaxIterations()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename NormalT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_normal_refinement.html">pcl::NormalRefinement</a>&lt; <a class="el" href="structpcl_1_1_normal.html">NormalT</a> &gt;::setMaxIterations </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>max_iterations</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set maximum iterations </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">max_iterations</td><td>maximum iterations </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;      {</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <a class="code" href="classpcl_1_1_normal_refinement.html#a08901fccd9852de8a16d48db110174bf">max_iterations_</a> = max_iterations;</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>filters/include/pcl/filters/<a class="el" href="normal__refinement_8h_source.html">normal_refinement.h</a></li>
<li>filters/include/pcl/filters/impl/<a class="el" href="normal__refinement_8hpp_source.html">normal_refinement.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><a class="el" href="classpcl_1_1_normal_refinement.html">NormalRefinement</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
